home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / amiga / opalvisn / lsidocs.lha / Include / Opal / LoadSave.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-26  |  3.8 KB  |  133 lines

  1. #ifndef    OPAL_LOADSAVE_H
  2. #define    OPAL_LOADSAVE_H
  3.  
  4. #ifndef    EXEC_TYPES_H
  5. #include "exec/types.h"
  6. #endif
  7.  
  8. #ifndef    EXEC_PORTS_H
  9. #include "exec/ports.h"
  10. #endif
  11.  
  12. #ifndef LIBRARIES_DOS_H
  13. #include "libraries/dos.h"
  14. #endif
  15.  
  16.  
  17. #define OVLOADERPORT "OVLoader_Port"
  18. #define OVSAVERPORT "OVSaver_Port"
  19.  
  20.  
  21.     /* Loader Saver Interface Message */
  22.  
  23. struct LSIMessage
  24.     { struct Message lsi_Node;    /* Standard Message Node    */
  25.       ULONG lsi_Type;        /* Command Type            */
  26.       ULONG lsi_SubType;        /* Command SubType        */
  27.       ULONG lsi_Flags;        /* See below            */
  28.       SHORT lsi_X;            /* Horizontal pixel offset    */
  29.       SHORT lsi_Y;            /* Vertical pixel offset    */
  30.       SHORT lsi_Width;        /* Image Width            */
  31.       SHORT lsi_Height;        /* Image Height            */
  32.       SHORT lsi_Depth;        /* Image Depth            */
  33.       SHORT lsi_Resolution;        /* Opal image resolution flags    */
  34.       UBYTE *lsi_Planes[24];    /* BitPlane pointers        */
  35.       ULONG lsi_Result;        /* Command Result        */
  36.       BPTR    lsi_File;        /* File handle            */
  37.       char    *lsi_FileName;        /* File name being loaded    */
  38.       struct OpalScreen *lsi_OScrn;    /* OpalScreen as Source or Dest */
  39.       LONG    lsi_DataLength;        /* Misc data length        */
  40.       APTR    lsi_Address;        /* Misc pointer         */
  41.     };
  42.  
  43.  
  44.  
  45. #define LSICmd(dp,sp,m)    {PutMsg(dp,(struct Message *)m);WaitPort(sp);GetMsg(sp);}
  46.  
  47.     /* Message (Command) Types */
  48.  
  49. #define OVCMD_FORMATCHECK    0
  50. #define OVCMD_LOADIMAGE        1
  51. #define OVCMD_SAVEIMAGE        2
  52. #define OVCMD_EXPUNGE        3
  53. #define OVCMD_SENDDATA        4
  54. #define OVCMD_GETDATA        5
  55. #define OVCMD_ERROR        6
  56. #define OVCMD_DONE        7
  57. #define OVCMD_SETPALETTE    8
  58. #define OVCMD_GETPALETTE    9
  59. #define OVCMD_SETCLUT        10
  60. #define OVCMD_GETCLUT        11
  61. #define OVCMD_PARAMETERS    12
  62. #define OVCMD_GETTHUMBNAIL    13
  63.  
  64.  
  65.  
  66.     /* Application specific messages */
  67. #define OVCMD_USERMESSAGE    50
  68. #define OVCMD_ASKUSER        51
  69. #define OVCMD_PERCENTAGE    52
  70. #define OVCMD_BUILDREQUEST    53
  71.  
  72.  
  73.     /* Data Format for lsi_SubTypes */
  74. /* note: x offset must be 0 for PLANAR and ILBM subtypes */
  75. /* If the image has a palette, it MUST be sent first */
  76.  
  77. #define OVDF_PLANAR    0    /* Standard bit planes [1..24]        */
  78. #define OVDF_RGB    1    /* Three seperate R,G,B channels (bytes)*/
  79. #define OVDF_GREY    2    /* 8bit grey scale values stored as bytes*/
  80. #define OVDF_ILBM    3    /* Interleaved bitmap format        */
  81. #define OVDF_ALPHA    4    /* 8bit alpha data (byte per pixel)    */
  82. #define OVDF_STENCIL    5    /* 1bitplane stencil mask        */
  83.  
  84.  
  85. /* Flags for lsi_Flags valid in a OVCMD_LOADIMAGE and OVCMD_SAVEIMAGE message */
  86. #define LSIF_ALPHA      2    /* Load/Save Alpha Plane        */
  87. #define LSIF_STENCIL      4    /* Load/Save Stencil Plane        */
  88. #define LSIF_IMAGEDATA      8    /* Load/Save Image data            */
  89.  
  90.   /* Flags for OVCMD_FormatCheck */
  91. #define LSIF_HASIMAGE    1    /* Image has Image data            */
  92. #define LSIF_HASSTENCIL    2    /* Image has stencil data        */
  93. #define LSIF_HASALPHA    4    /* Image has Alpha channel data        */
  94. #define LSIF_RESVALID    8    /* Resolution flags are valid (load only)*/
  95.  
  96.  
  97.   /* Error Codes, returned in lsi_Result of a OVCMD_ERROR message  */
  98.  
  99. #define LSI_ERR_OUTOFMEM    1
  100. #define LSI_ERR_OPENFILE    2
  101. #define LSI_ERR_BADFORMAT    3
  102. #define LSI_ERR_FILEREAD    4
  103. #define LSI_ERR_FILEWRITE    5
  104. #define LSI_ERR_UNSUPPORTED    6
  105. #define LSI_ERR_ERROR        100    /* General error */
  106.  
  107.  
  108. /* List structure for opal.library's list of LSI modules */
  109.  
  110. struct LSIListEntry
  111.     { struct LSIListEntry *Succ;
  112.       struct LSIListEntry *Pred;
  113.       struct MsgPort *Port;
  114.       ULONG Flags;
  115.       char Name[30];
  116.     };
  117.  
  118.  
  119. /* Loader Flags */
  120. #define OVLF_ALLOWIMAGE         1   /* File format handles Image data    */
  121. #define OVLF_ALLOWSTENCIL     2   /* File format handles a stencil plane */
  122. #define OVLF_ALLOWALPHA        4   /* File format handles Alpha data    */
  123. #define OVLF_NEEDFILENAME     8   /* Needs a filename            */
  124.  
  125. /* Saver Flags */
  126. #define OVSF_ALLOWIMAGE        1   /* File format handles Image data    */
  127. #define OVSF_ALLOWSTENCIL    2   /* File format handles a stencil plane */
  128. #define OVSF_ALLOWALPHA        4   /* File format handles Alpha data    */
  129. #define OVSF_NEEDFILENAME     8   /* Needs a filename            */
  130.  
  131. #endif
  132.  
  133.